A GNSS receiver determines its global position based on the signals it receives from orbiting GPS, GLONASS or other satellites. The signal transmitted by each satellite is comprised of a carrier that is modulated by at least a binary pseudorandom (PRN) code, which consists of a seemingly random sequence of 1s and 0s that periodically repeat. The 1s and 0s in the PRN code are referred to as "code chips," and the transitions in the code from 1 to 0 or 0 to 1, which occur at "code chip times," are referred to as "bit transitions." Each satellite uses a unique PRN code, and thus, a GNSS receiver can associate a received signal with a particular satellite by determining which PRN code is included in the signal.
The GNSS receiver calculates the difference between the time a satellite transmits its signal and the time that the receiver receives the signal. The receiver then calculates its distance, or "pseudorange," from the satellite based on the associated time difference. Using the pseudoranges from at least four satellites, the receiver determines its global position.
To determine the time difference, the GNSS receiver synchronizes a locally-generated PRN code with the PRN code in the received signal by aligning the code chips in each of the codes It then determines how much the locally-generated PRN code is shifted, in time, from the known timing of the satellite PRN code at the time of transmission, and calculates the associated pseudorange. The more closely the GNSS receiver aligns the locally-generated PRN code with the PRN code in the received signal, the more precisely the GNSS receiver can determine the associated time difference and pseudorange and, in turn, its global position.
The code synchronization operations include acquisition of the satellite PRN code and tracking the code. To acquire the PRN code, the GNSS receiver generally makes a series of correlation measurements that are separated in time by a code chip. After acquisition, the GNSS receiver tracks the received code. It generally makes "early-minus-late" correlation measurements, i.e., measurements of the difference between (i) a correlation measurement associated with the PRN code in the received signal and an early version of the localy-generated PRN code, and (ii) a correlation measurement associated with the PRN code in the received signal and a late version of the local PRN code. The GNSS receiver then uses the early-minus-late measurements in a delay lock loop (DLL), which produces an error signal that is proportional to the misalignment between the local and the received PRN codes. The error signal is used, in turn, to control the PRN code generator, which shifts the local PRN code essentially to minimize the DLL error signal.
The GNSS receiver also typically aligns the satellite carrier with a local carrier using correlation measurements associated with a punctual version of the local PRN code. To do this the receiver uses a carrier tracking loop.
A GNSS receiver receives not only line-of-sight, or direct path, satellite signals but also multipath signals, which are signals that travel along different paths and are reflected to the receiver from the ground, bodies of water, nearby buildings, etc. The multipath signals arrive at the GNSS receiver after the direct-path signal and combine with the direct-path signal to produce a distorted received signal. This distortion of the received signal adversely affects code synchronization operations because the correlation measurements, which measure the correlation between the local PRN code and the received signal, are based on the entire received signal--including the multipath components thereof. The distortion may be such that the GNSS receiver attempts to synchronize to a multipath signal instead of to the direct-path signal. This is particularly true for multipath signals that have code bit transitions that occur close to the times at which code bit transitions occur in the direct path signal.
One way to more accurately synchronize the received and the locally-generated PRN codes is to use narrowly spaced correlators for code tracking. The use of the "narrow correlators" is discussed in U.S. Pat. Nos. 5,101,416; 5,390,207 and 5,495,499, all of which are assigned to a common assignee and incorporated herein by reference. It has been determined that the adverse effects of multipath signal distortion on the early-minus-late measurements is substantially reduced by narrowing the delay spacing between the early and late versions of the PRN code. The delay spacing is narrowed such that the noise correlates in the early and late correlation measurements
The narrow correlators are essentially spaced closer to a correlation peak that is associated with the punctual PRN code correlation measurements than the contributions of many of the multipath signals. Accordingly, the early-minus-late correlation measurements made by these correlators are significantly less distorted than they would be if they were made at a greater interval around the peak. The closer the correlators are placed to the correlation peak, the more the adverse effects of the multipath signals on the correlation measurements are minimized. The delay spacing can not, however, be made so narrow that the DLL can not lock to the satellite PRN code and then maintain code lock. Otherwise, the receiver cannot track the PRN code in the received signal without repeatedly taking the time to re-lock to the code.